<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>logind.conf
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>logind.conf 中文手册</h1><h2 id="auth_name">译者：<strong><a href="../index.html">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="../index.html">金步国作品集</a> [ <a href="../index.html">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="logind.conf"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>logind.conf, logind.conf.d — 登录管理器配置文件</p></div><div class="refsynopsisdiv"><h2>大纲</h2><p><code class="filename">/etc/systemd/logind.conf</code></p><p><code class="filename">/etc/systemd/logind.conf.d/*.conf</code></p><p><code class="filename">/run/systemd/logind.conf.d/*.conf</code></p><p><code class="filename">/usr/lib/systemd/logind.conf.d/*.conf</code></p></div><div class="refsect1"><a name="id-1.5"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="logind.conf.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p>上述配置文件用于控制
    <a href="systemd-logind.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a> 登录管理器的行为。参见
    <a href="systemd.syntax.html#"><span class="citerefentry"><span class="refentrytitle">systemd.syntax</span>(5)</span></a>
     以了解通用配置语法。</p></div><div class="refsection"><a name="main-conf"></a><h2>配置目录及其优先级</h2><p>默认设置是在编译期间确定的，
    所以仅在确实需要修改默认设置的情况下，
    才需要使用配置文件。位于
    <code class="filename">/etc/systemd/</code> 目录中的初始配置文件，
    仅包含了展示选项默认值的注释，
    目的在于方便系统管理员查看和直接修改。
    </p><p>如果软件包想要自定义某些默认设置，
    那么必须将自定义的配置文件安装到
    <code class="filename">/usr/lib/systemd/*.conf.d/</code> 目录中。
    <code class="filename">/etc/</code> 目录仅供系统管理员使用。
    系统管理员可以利用下面的逻辑来覆盖默认设置：
    主配置文件最先被读取，
    优先级也最低。
    所有 <code class="filename">*.conf.d/</code> 中的配置文件
    都会覆盖主配置文件中的设置。
    所有 <code class="filename">*.conf.d/</code> 中的配置文件(无论位于哪个目录中)，
    统一按照文件名的字典顺序处理。
    当多个配置文件都设置了同一个选项的时候：
    (1)如果该选项仅接受一个单一值，那么仅以文件名最靠后(字典顺序)的那一个为准；
    (2)如果该选项可接受一个值列表，那么将会按照文件名的字典顺序将所有值列表拼接起来。
    为了便于排序，
    建议给所有 <code class="filename">*.conf.d/</code> 中的配置文件
    都加上
    两位十进制数字的文件名前缀。</p><p>如果系统管理员想要屏蔽 <code class="filename">/usr/lib/</code> 目录中的某个配置文件，
    那么最佳做法是在 <code class="filename">/etc/</code> 目录中
    创建一个指向 <code class="filename">/dev/null</code> 的同名符号链接，
    即可彻底屏蔽 <code class="filename">/usr/lib/</code> 目录中的
    同名文件。</p></div><div class="refsect1"><a name="id-1.7"></a><h2 id="选项">选项<a class="headerlink" title="Permalink to this headline" href="logind.conf.html#%E9%80%89%E9%A1%B9">¶</a></h2><p>下面的所有选项都位于
    "<code class="literal">[Login]</code>" 小节：</p><div class="variablelist"><dl class="variablelist"><dt id="NAutoVTs="><span class="term"><code class="varname">NAutoVTs=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#NAutoVTs=">¶</a></dt><dd><p>必须设为一个正整数，
        表示默认最多可以自动启动多少个虚拟终端。
        当用户切换到一个先前未曾使用的虚拟终端时，
        将根据该虚拟终端的名称自动从
        <code class="filename">autovt@.service</code>
        模版实例化一个
        例如 <code class="filename">autovt@tty4.service</code> 这样的服务单元。
        默认情况下，<code class="filename">autovt@.service</code> 是一个指向
        <code class="filename">getty@.service</code> 的软连接。
        换句话说，当用户切换到一个先前未曾使用的虚拟终端时，"login:"登录提示符是动态启动的。
        因此，此选项实际上相当于设置了允许启动多少个
        <a class="ulink" href="../man/agetty.html" target="_top">agetty</a> 文本登录界面(与虚拟终端一一对应)。
        如果某个虚拟终端已经被其他子系统(例如图形登录界面)占用，
        那么将不会自动启动此虚拟终端。
        注意，<code class="varname">ReserveVT=</code> 中的虚拟终端
        总会被自动启动，
        即使这些终端并不在
        <code class="varname">NAutoVTs=</code> 的范围内。
        默认值是"6"。若设为"0"则表示禁止自动启动任何虚拟终端，
        也就是禁止自动从 <code class="filename">autovt@.service</code>
        模版实例化。</p></dd><dt id="ReserveVT="><span class="term"><code class="varname">ReserveVT=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#ReserveVT=">¶</a></dt><dd><p>必须设为一个表示终端编号的正整数，
        表示无条件的为该终端从
        <code class="filename">autovt@.service</code> 模版实例化一个服务单元(见上文)。
        被此选项选中的虚拟终端将被无条件的标记为"忙碌"状态，
        以确保不被任何其他子系统占用。
        此选项可用于确保无论其他子系统占用了多少虚拟终端，
        在特定编号的终端上总有一个文本界面的登录
        <a class="ulink" href="../man/agetty.html" target="_top">agetty</a> 可用。
        默认值是"6"，
        也就是在 Alt-F6 上总有一个文本界面的"login:"登录提示符。
        若设为"0"则表示禁止此特性。</p></dd><dt id="KillUserProcesses="><span class="term"><code class="varname">KillUserProcesses=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#KillUserProcesses=">¶</a></dt><dd><p>接受一个布尔值。控制在用户退出登录会话时，
        是否杀死该用户的进程。如果设为"yes"，
        那么与此会话对应的 scope 单元中所包含的所有进程都将被杀死。
        如果设为"no"，那么与此会话对应的 scope 单元将会被"遗弃"，
        并且其中包含的所有进程都将被保留(任由其自生自灭)。
        默认值是 "<code class="literal">yes</code>" 。
        参见下面的 <code class="varname">KillOnlyUsers=</code> 与
        <code class="varname">KillExcludeUsers=</code> 选项。</p><p>根据 linger(逗留) 设置的不同，用户进程除了可以运行在会话中，
        还可以运行在 <code class="filename">user@.service</code> 用户管理单元中。
        这样就允许用户运行独立于登录会话的进程。参见
        <a href="loginctl.html#"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>
        的 <span class="command"><strong>enable-linger</strong></span> 命令。
        </p><p>注意，设置 <code class="varname">KillUserProcesses=yes</code>
        将破坏
        <a href="https://linux.die.net/man/1/screen"><span class="citerefentry"><span class="refentrytitle">screen</span>(1)</span></a>
        与
        <a href="https://linux.die.net/man/1/tmux"><span class="citerefentry"><span class="refentrytitle">tmux</span>(1)</span></a>
        之类的工具(除非它们被移出了会话 scope 单元之外)。参见
        <a href="systemd-run.html#"><span class="citerefentry"><span class="refentrytitle">systemd-run</span>(1)</span></a> 的例子。
        </p></dd><dt id="KillOnlyUsers="><span class="term"><code class="varname">KillOnlyUsers=</code>, </span><span class="term"><code class="varname">KillExcludeUsers=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#KillOnlyUsers=">¶</a></dt><dd><p>设为一个空格分隔的用户名列表，
        以影响 <code class="varname">KillUserProcesses=</code> 的效果：
        若 <code class="varname">KillOnlyUsers=</code> 非空，
        则表示 <code class="varname">KillUserProcesses=yes</code> 仅对列表内的用户有效。
        若 <code class="varname">KillExcludeUsers=</code> 非空，
        则表示 <code class="varname">KillUserProcesses=yes</code> 仅对列表外的用户有效。
        <code class="varname">KillOnlyUsers=</code> 默认值为空，
        <code class="varname">KillExcludeUsers=</code> 默认值为 "<code class="literal">root</code>" ，
        并且 <code class="varname">KillExcludeUsers=</code> 的优先级比 <code class="varname">KillOnlyUsers=</code> 更高。
        注意，若选项值为空则表示忽略此选项(相当于不存在此选项)。</p></dd><dt id="IdleAction="><span class="term"><code class="varname">IdleAction=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#IdleAction=">¶</a></dt><dd><p>当系统持续处于空闲状态超过 <code class="varname">IdleActionSec=</code> 所设置的时间后，
        应该执行何种操作：
        "<code class="literal">ignore</code>"(无操作),
        "<code class="literal">poweroff</code>"(关闭系统并切断电源),
        "<code class="literal">reboot</code>"(重新启动),
        "<code class="literal">halt</code>"(关闭系统但不切断电源),
        "<code class="literal">kexec</code>"(调用内核"kexec"函数),
        "<code class="literal">suspend</code>"(休眠到内存),
        "<code class="literal">hibernate</code>"(休眠到硬盘),
        "<code class="literal">hybrid-sleep</code>"(同时休眠到内存与硬盘),
        "<code class="literal">suspend-then-hibernate</code>"(先休眠到内存超时后再休眠到硬盘),
        "<code class="literal">lock</code>"(锁屏) 。
        默认值是 "<code class="literal">ignore</code>"</p><p>注意，此功能依赖于用户会话能够正确的报告空闲状态。
        执行此处设置的动作需要满足下列全部条件：
        (1)系统中不存在"idle <a class="ulink" href="https://www.freedesktop.org/wiki/Software/systemd/inhibit" target="_top">inhibitor</a>"锁(禁止进入空闲状态的锁)
        (2)所有会话都报告说它们正处于空闲状态，并且持续处于空闲状态超过了下文
        <code class="varname">IdleActionSec=</code>
        所设置的时间。</p></dd><dt id="IdleActionSec="><span class="term"><code class="varname">IdleActionSec=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#IdleActionSec=">¶</a></dt><dd><p>当系统持续处于空闲状态超过此处设置的时长之后
        将会自动执行 <code class="varname">IdleAction=</code> 设定的动作。
        可以使用下面的时间单位后缀："ms", "s", "min", "h", "d" ，若仅设为一个正整数，那么单位是秒。</p></dd><dt id="InhibitDelayMaxSec="><span class="term"><code class="varname">InhibitDelayMaxSec=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#InhibitDelayMaxSec=">¶</a></dt><dd><p>当系统中存在"delay <a class="ulink" href="https://www.freedesktop.org/wiki/Software/systemd/inhibit" target="_top">inhibitor</a>"延迟锁时，关闭/休眠系统的请求将被临时延迟一段时间。
        此选项可用于设置上述延迟的最大时长。
        若超过这个时长之后，延迟锁依然未被释放，那么将执行关闭/休眠系统的动作。
        可以使用下面的时间单位后缀："ms", "s", "min", "h", "d" ，若仅设为一个正整数，那么单位是秒。
        默认值是5秒。</p></dd><dt id="UserStopDelaySec="><span class="term"><code class="varname">UserStopDelaySec=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#UserStopDelaySec=">¶</a></dt><dd><p>用户完全注销后，保持用户记录与 <code class="filename">user@.service</code> 服务实例的时长。
        设为零表示当用户的最后一个会话结束时，立即结束该用户的 <code class="filename">user@.service</code> 服务实例。
        设为非零表示当用户的最后一个会话结束时，在指定的等待时长之内，若该用户仍未再次登录，才会结束该用户的 <code class="filename">user@.service</code> 服务实例。
        通过将此选项设为非零可以避免 <code class="filename">user@.service</code> 服务实例的频繁启动与停止，从而加快了登录/注销的速度。
        特殊值 "<code class="literal">infinity</code>" 表示一旦用户首次登录，该用户的 <code class="filename">user@.service</code> 服务实例就将一直持续运行，直到系统关机。
        默认值是 10s 。</p></dd><dt id="HandlePowerKey="><span class="term"><code class="varname">HandlePowerKey=</code>, </span><span class="term"><code class="varname">HandleSuspendKey=</code>, </span><span class="term"><code class="varname">HandleHibernateKey=</code>, </span><span class="term"><code class="varname">HandleLidSwitch=</code>, </span><span class="term"><code class="varname">HandleLidSwitchExternalPower=</code>, </span><span class="term"><code class="varname">HandleLidSwitchDocked=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#HandlePowerKey=">¶</a></dt><dd><p>当 power(电源)/sleep(休眠)/lid(合上盖子)
        事件发生时，
        应该执行何种操作：
        "<code class="literal">ignore</code>"(无操作),
        "<code class="literal">poweroff</code>"(关闭系统并切断电源),
        "<code class="literal">reboot</code>"(重新启动),
        "<code class="literal">halt</code>"(关闭系统但不切断电源),
        "<code class="literal">kexec</code>"(调用内核"kexec"函数),
        "<code class="literal">suspend</code>"(休眠到内存),
        "<code class="literal">hibernate</code>"(休眠到硬盘),
        "<code class="literal">hybrid-sleep</code>"(同时休眠到内存与硬盘),
        "<code class="literal">suspend-then-hibernate</code>"(先休眠到内存超时后再休眠到硬盘),
        "<code class="literal">lock</code>"(锁屏) 。
        注意，
        只监视带有
        "<code class="literal">power-switch</code>"
        标签的
        输入设备的 key(按下按钮)/lid(合上盖子) 事件。
        如果主机插入了一个扩展坞(docking station)
        或者连接了多个显示器，
        那么"合上盖子"将执行
        <code class="varname">HandleLidSwitchDocked=</code> 动作；
        如果主机使用外部电源，
        并且 <code class="varname">HandleLidSwitchExternalPower=</code> 不是默认值("<code class="literal">ignore</code>")，
        那么"合上盖子"将执行
        <code class="varname">HandleLidSwitchExternalPower=</code> 动作；
        否则将执行
        <code class="varname">HandleLidSwitch=</code> 动作。
        下面是
        各选项的默认值：
        <code class="varname">HandlePowerKey=poweroff</code> 、
        <code class="varname">HandleSuspendKey=suspend</code> 、
        <code class="varname">HandleHibernateKey=hibernate</code> 、
        <code class="varname">HandleLidSwitch=suspend</code> 、
        <code class="varname">HandleLidSwitchExternalPower=ignore</code> 、
        <code class="varname">HandleLidSwitchDocked=ignore</code></p><p>持有低级
        "<a class="ulink" href="https://www.freedesktop.org/wiki/Software/systemd/inhibit" target="_top">inhibitor</a>"延迟锁
        ("<code class="literal">handle-power-key</code>", "<code class="literal">handle-suspend-key</code>",
        "<code class="literal">handle-hibernate-key</code>", "<code class="literal">handle-lid-switch</code>")
        的其他应用程序将会阻止 <span class="command"><strong>systemd-logind</strong></span> 处理系统的 power(电源)/sleep(休眠)/lid(合上盖子) 事件。
        也就是说， <span class="command"><strong>systemd-logind</strong></span> 将不会对上述按钮/开关事件作出任何响应，
        因此，一系列 <code class="varname">Handle*=</code> 设置也变得没有意义了。
        图形化的桌面环境经常
        利用这个机制来接管对休眠事件的处理。</p></dd><dt id="PowerKeyIgnoreInhibited="><span class="term"><code class="varname">PowerKeyIgnoreInhibited=</code>, </span><span class="term"><code class="varname">SuspendKeyIgnoreInhibited=</code>, </span><span class="term"><code class="varname">HibernateKeyIgnoreInhibited=</code>, </span><span class="term"><code class="varname">LidSwitchIgnoreInhibited=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#PowerKeyIgnoreInhibited=">¶</a></dt><dd><p>设置 power(电源)/sleep(休眠)/lid(合上盖子) 事件所触发的 <span class="command"><strong>systemd-logind</strong></span>
        操作(见上文)是否应该忽略高级 <a class="ulink" href="https://www.freedesktop.org/wiki/Software/systemd/inhibit" target="_top">inhibitor</a>
        锁("shutdown", "sleep", "idle")。注意，无论如何设置这些参数，
        前文提及的低级延迟锁("<code class="literal">handle-power-key</code>", "<code class="literal">handle-suspend-key</code>",
        "<code class="literal">handle-hibernate-key</code>", "<code class="literal">handle-lid-switch</code>")
        都不会被忽略。</p><p>这些选项都只能接受布尔值。
        "<code class="literal">no</code>" 表示遵守应用所持有的高级 inhibitor 锁，
        也就是说，仅当所有的高级锁都失效以后才执行所触发的操作。
        "<code class="literal">yes</code>" 表示无视高级 inhibitor 锁的存在，
        立即无条件的执行所触发的操作。
        下面是
        各选项的默认值：
        <code class="varname">PowerKeyIgnoreInhibited=no</code> 、
        <code class="varname">SuspendKeyIgnoreInhibited=no</code> 、
        <code class="varname">HibernateKeyIgnoreInhibited=no</code> 、
        <code class="varname">LidSwitchIgnoreInhibited=yes</code> 。</p></dd><dt id="HoldoffTimeoutSec="><span class="term"><code class="varname">HoldoffTimeoutSec=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#HoldoffTimeoutSec=">¶</a></dt><dd><p>当开机/唤醒时间
        尚未超出此处设置的时间长度时，
        systemd 将延迟响应合上盖子(lid)硬件事件。
        为了能够正确检测可热插拔的外接显示器与扩展坞，
        在刚开机之后的一段时间内忽略lid事件是非常有必要的。
        若设为零，systemd 将会立即响应lid事件，
        但这有可能在内核完成初始化所有热插拔设备之前。
        只要你不在乎让 systemd 去管理在系统关闭时被插入或拔出的设备，
        那么就可以设为零。
        默认值是30秒。</p></dd><dt id="RuntimeDirectorySize="><span class="term"><code class="varname">RuntimeDirectorySize=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#RuntimeDirectorySize=">¶</a></dt><dd><p>为每个已登录用户设置运行时目录
        <code class="varname">$XDG_RUNTIME_DIR</code> 的最大尺寸。
        若设为绝对大小，
        则可以使用基于1024的字节后缀：K, M, G, T 。
        若设为相对大小，
        则可以设为一个以物理内存大小为基准的百分数(以 "<code class="literal">%</code>" 为后缀)。
        默认值是 10% 。
        注意，这里设置的值仅用于限制运行时目录尺寸的上限，
        因为运行时目录位于内存中(tmpfs)，
        所以实际所占用的内存大小是随着目录内容的变化而变化的。</p></dd><dt id="InhibitorsMax="><span class="term"><code class="varname">InhibitorsMax=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#InhibitorsMax=">¶</a></dt><dd><p>控制最多允许同时存在多少个 inhibitor 锁。
        默认值是 8192(8K)</p></dd><dt id="SessionsMax="><span class="term"><code class="varname">SessionsMax=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#SessionsMax=">¶</a></dt><dd><p>控制最多允许同时管理多少个用户会话。默认值是 8192 。
        根据PAM栈中 <code class="filename">pam_systemd.so</code> 模块的不同配置，
        超出数量限制的登录会话可能会被直接拒绝、也可能会被允许登录但不被
        <code class="filename">systemd-logind</code> 追踪。</p></dd><dt id="RemoveIPC="><span class="term"><code class="varname">RemoveIPC=</code></span><a class="headerlink" title="Permalink to this term" href="logind.conf.html#RemoveIPC=">¶</a></dt><dd><p>当用户完全退出登录时(也就是退出最后一个登录会话时)，
        是否销毁所有属于该用户的 SysV 与 POSIX IPC 对象。
        这些IPC对象包括：SysV 信号/共享内存/消息队列、POSIX 共享内存/消息队列。
        默认值 "<code class="literal">yes</code>" 表示销毁，这样可以确保当用户完全退出登录之后，不会再占用任何IPC资源。
        注意，无论如何设置此选项，root 用户的IPC对象永远不会被销毁。</p></dd></dl></div></div><div class="refsect1"><a name="id-1.8"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="logind.conf.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
        <a href="systemd.html#"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
        <a href="systemd-logind.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd-logind.service</span>(8)</span></a>,
        <a href="loginctl.html#"><span class="citerefentry"><span class="refentrytitle">loginctl</span>(1)</span></a>,
        <a href="systemd-system.conf.html#"><span class="citerefentry"><span class="refentrytitle">systemd-system.conf</span>(5)</span></a>
      </p></div></div></body></html>
